package com.kws.payment.dao;

import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * <b>UnionPayMiniOrderRq</b>
 *
 * @description: UnionPayMiniOrderRq <br>
 * @date: 2024/12/26 15:32 <br>
 * @author: lhm <br>
 * @version: 1.0 <br>
 */
public class UnionPayMiniOrderRq {
    @ApiModelProperty(value = "报文请求时间 格式yyyy-MM-dd HH:mm:ss")
    private String requestTimestamp;

    @ApiModelProperty(value = "商户订单号")
    private String merOrderId;

    @ApiModelProperty(value = "商户号")
    private String mid;

    @ApiModelProperty(value = "终端号")
    private String tid;

    @ApiModelProperty(value = "支付总金额 单位分")
    private Integer totalAmount;

    @ApiModelProperty(value = "微信子商户appId")
    private String subAppId;

    @ApiModelProperty(value = "交易类型 值为MINI")
    private String tradeType;

    @ApiModelProperty(value = "用户子标识 微信必传，需要商户自行调用微信平台接口获取")
    private String subOpenId;

    @ApiModelProperty(value = "消息ID")
    private String msgId;

    @ApiModelProperty(value = "请求系统预留字段")
    private String srcReserve;

    @ApiModelProperty(value = "业务类型 MINIDEFAULT")
    private String instMid;

    @ApiModelProperty(value = "商品信息")
    private List<GoodsRq> goods;

    @ApiModelProperty(value = "商户附加数据")
    private String attachedData;

    @ApiModelProperty(value = "订单过期时间 为空则使用系统默认过期时间（30分钟），格式yyyy-MM-dd HH:mm:ss")
    private String expireTime;

    @ApiModelProperty(value = "商品标记 用于优惠活动")
    private String goodsTag;

    @ApiModelProperty(value = "账单描述 微信支付时 上送值长度不超过128字节")
    private String orderDesc;

    @ApiModelProperty(value = "订单原始金额 单位分")
    private Integer originalAmount;

    @ApiModelProperty(value = "商品ID")
    private String productId;

    @ApiModelProperty(value = "分账标记 若为true")
    private boolean divisionFlag;

    @ApiModelProperty(value = "平台商户分账金额 若分账标记传，则分账金额必传")
    private Integer platformAmount;

    @ApiModelProperty(value = "子订单信息 在传分账标记的情况下，若传子商户号，子商户分账金额必传")
    private List<SubOrdersRq> subOrders;

    @ApiModelProperty(value = "支付结果通知地址")
    private String notifyUrl;

    @ApiModelProperty(value = "用户子标识 支付宝必传，需要商户自行调用支付宝接口获取，具体获取方式请根据支付宝接口文档")
    private String userId;

    @ApiModelProperty(value = "是否需要限制信用卡支付 取值：true或false，默认false")
    private String limitCreditCard;

    @ApiModelProperty(value = "花呗分期数 取值：仅支持3、6、12")
    private String installmentNumber;

    public String getRequestTimestamp() {
        return requestTimestamp;
    }

    public void setRequestTimestamp(String requestTimestamp) {
        this.requestTimestamp = requestTimestamp;
    }

    public String getMerOrderId() {
        return merOrderId;
    }

    public void setMerOrderId(String merOrderId) {
        this.merOrderId = merOrderId;
    }

    public String getMid() {
        return mid;
    }

    public void setMid(String mid) {
        this.mid = mid;
    }

    public String getTid() {
        return tid;
    }

    public void setTid(String tid) {
        this.tid = tid;
    }

    public Integer getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(Integer totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getSubAppId() {
        return subAppId;
    }

    public void setSubAppId(String subAppId) {
        this.subAppId = subAppId;
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public String getSubOpenId() {
        return subOpenId;
    }

    public void setSubOpenId(String subOpenId) {
        this.subOpenId = subOpenId;
    }

    public String getMsgId() {
        return msgId;
    }

    public void setMsgId(String msgId) {
        this.msgId = msgId;
    }

    public String getSrcReserve() {
        return srcReserve;
    }

    public void setSrcReserve(String srcReserve) {
        this.srcReserve = srcReserve;
    }

    public String getInstMid() {
        return instMid;
    }

    public void setInstMid(String instMid) {
        this.instMid = instMid;
    }

    public List<GoodsRq> getGoods() {
        return goods;
    }

    public void setGoods(List<GoodsRq> goods) {
        this.goods = goods;
    }

    public String getAttachedData() {
        return attachedData;
    }

    public void setAttachedData(String attachedData) {
        this.attachedData = attachedData;
    }

    public String getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(String expireTime) {
        this.expireTime = expireTime;
    }

    public String getGoodsTag() {
        return goodsTag;
    }

    public void setGoodsTag(String goodsTag) {
        this.goodsTag = goodsTag;
    }

    public String getOrderDesc() {
        return orderDesc;
    }

    public void setOrderDesc(String orderDesc) {
        this.orderDesc = orderDesc;
    }

    public Integer getOriginalAmount() {
        return originalAmount;
    }

    public void setOriginalAmount(Integer originalAmount) {
        this.originalAmount = originalAmount;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public boolean isDivisionFlag() {
        return divisionFlag;
    }

    public void setDivisionFlag(boolean divisionFlag) {
        this.divisionFlag = divisionFlag;
    }

    public Integer getPlatformAmount() {
        return platformAmount;
    }

    public void setPlatformAmount(Integer platformAmount) {
        this.platformAmount = platformAmount;
    }

    public List<SubOrdersRq> getSubOrders() {
        return subOrders;
    }

    public void setSubOrders(List<SubOrdersRq> subOrders) {
        this.subOrders = subOrders;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getLimitCreditCard() {
        return limitCreditCard;
    }

    public void setLimitCreditCard(String limitCreditCard) {
        this.limitCreditCard = limitCreditCard;
    }

    public String getInstallmentNumber() {
        return installmentNumber;
    }

    public void setInstallmentNumber(String installmentNumber) {
        this.installmentNumber = installmentNumber;
    }
}
